# Copyright (c) 2022 Robert Bosch GmbH and Microsoft Corporation
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: Apache-2.0

"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _SeatComponent:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SeatComponentEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[
        _SeatComponent.ValueType
    ],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    BASE: _SeatComponent.ValueType  # 0
    CUSHION: _SeatComponent.ValueType  # 1
    LUMBAR: _SeatComponent.ValueType  # 2
    SIDE_BOLSTER: _SeatComponent.ValueType  # 3
    HEAD_RESTRAINT: _SeatComponent.ValueType  # 4

class SeatComponent(_SeatComponent, metaclass=_SeatComponentEnumTypeWrapper):
    """*
    @brief
    """

    pass

BASE: SeatComponent.ValueType  # 0
CUSHION: SeatComponent.ValueType  # 1
LUMBAR: SeatComponent.ValueType  # 2
SIDE_BOLSTER: SeatComponent.ValueType  # 3
HEAD_RESTRAINT: SeatComponent.ValueType  # 4
global___SeatComponent = SeatComponent

class MoveRequest(google.protobuf.message.Message):
    """*
    @brief
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SEAT_FIELD_NUMBER: builtins.int
    @property
    def seat(self) -> global___Seat:
        """The desired seat position"""
        pass
    def __init__(
        self,
        *,
        seat: typing.Optional[global___Seat] = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["seat", b"seat"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["seat", b"seat"]
    ) -> None: ...

global___MoveRequest = MoveRequest

class MoveReply(google.protobuf.message.Message):
    """*
    @brief
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(
        self,
    ) -> None: ...

global___MoveReply = MoveReply

class MoveComponentRequest(google.protobuf.message.Message):
    """*
    @brief
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SEAT_FIELD_NUMBER: builtins.int
    COMPONENT_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    @property
    def seat(self) -> global___SeatLocation:
        """The seat location to change"""
        pass
    component: global___SeatComponent.ValueType
    """The component position to change"""

    position: builtins.int
    """The desired position to move the component to"""
    def __init__(
        self,
        *,
        seat: typing.Optional[global___SeatLocation] = ...,
        component: global___SeatComponent.ValueType = ...,
        position: builtins.int = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["seat", b"seat"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "component", b"component", "position", b"position", "seat", b"seat"
        ],
    ) -> None: ...

global___MoveComponentRequest = MoveComponentRequest

class MoveComponentReply(google.protobuf.message.Message):
    """*
    @brief
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    def __init__(
        self,
    ) -> None: ...

global___MoveComponentReply = MoveComponentReply

class CurrentPositionRequest(google.protobuf.message.Message):
    """*
    @brief
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ROW_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    row: builtins.int
    """The row of the desired seat (1 - front most)"""

    index: builtins.int
    """The position in the addressed row (1 - left most)"""
    def __init__(
        self,
        *,
        row: builtins.int = ...,
        index: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["index", b"index", "row", b"row"]
    ) -> None: ...

global___CurrentPositionRequest = CurrentPositionRequest

class CurrentPositionReply(google.protobuf.message.Message):
    """*
    @brief
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SEAT_FIELD_NUMBER: builtins.int
    @property
    def seat(self) -> global___Seat:
        """The seat state that was requested"""
        pass
    def __init__(
        self,
        *,
        seat: typing.Optional[global___Seat] = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing_extensions.Literal["seat", b"seat"]
    ) -> builtins.bool: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["seat", b"seat"]
    ) -> None: ...

global___CurrentPositionReply = CurrentPositionReply

class Seat(google.protobuf.message.Message):
    """*
    @brief The structure used to describe the seat's position in the vehicle
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    LOCATION_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    @property
    def location(self) -> global___SeatLocation:
        """The location of the seat in the vehicle"""
        pass
    @property
    def position(self) -> global___Position:
        """The various positions of the seat"""
        pass
    def __init__(
        self,
        *,
        location: typing.Optional[global___SeatLocation] = ...,
        position: typing.Optional[global___Position] = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions.Literal[
            "location", b"location", "position", b"position"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "location", b"location", "position", b"position"
        ],
    ) -> None: ...

global___Seat = Seat

class SeatLocation(google.protobuf.message.Message):
    """*
    @brief The location of the seat in the vehicle
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ROW_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    row: builtins.int
    """The row, front 1 and +1 toward rear"""

    index: builtins.int
    """The index within the row, 1 left most, +1 toward right"""
    def __init__(
        self,
        *,
        row: builtins.int = ...,
        index: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing_extensions.Literal["index", b"index", "row", b"row"]
    ) -> None: ...

global___SeatLocation = SeatLocation

class Position(google.protobuf.message.Message):
    """*
    @brief The position of the entire seat

    NOTE: position -1 = Unknown/Unsupported
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    BASE_FIELD_NUMBER: builtins.int
    CUSHION_FIELD_NUMBER: builtins.int
    LUMBAR_FIELD_NUMBER: builtins.int
    SIDE_BOLSTER_FIELD_NUMBER: builtins.int
    HEAD_RESTRAINT_FIELD_NUMBER: builtins.int
    base: builtins.int
    """The position of the base 0 front, 1000 back"""

    cushion: builtins.int
    """The position of the cushion 0 short, 1000 long"""

    lumbar: builtins.int
    """The position of the lumbar support"""

    side_bolster: builtins.int
    """The position of the side bolster"""

    head_restraint: builtins.int
    """The position of the head restraint 0 down, 1000 up"""
    def __init__(
        self,
        *,
        base: builtins.int = ...,
        cushion: builtins.int = ...,
        lumbar: builtins.int = ...,
        side_bolster: builtins.int = ...,
        head_restraint: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "base",
            b"base",
            "cushion",
            b"cushion",
            "head_restraint",
            b"head_restraint",
            "lumbar",
            b"lumbar",
            "side_bolster",
            b"side_bolster",
        ],
    ) -> None: ...

global___Position = Position
